import Vue from 'vue'
import VueRouter from 'vue-router'
import { getToken } from '@/utils/token.js'
Vue.use(VueRouter)

const routes = [
  {
    path: '/',
    redirect: '/layout/home'
  },
  {
    path: '/login',
    component: () => import('@/views/Login'),
    // 路由独享守卫
    beforeEnter (to, from, next) {
      if (getToken()?.length > 0) {
        // next(false) 留在原页面
        // 问题: 你手动修改url路由路径, next(false)会给你跳转回form页面
        // 产生一次历史记录, 导致你的返回按钮, $router.back()失效
        // 返回登录页, 回不去

        // 解决:
        // 1. 想要进登录页不留在原地了, 而是返回首页
        next('/layout/home')
        // 2. 移动端App也没有地址栏, 不必特别纠结返回按钮
      } else {
        next() // 其他情况通通放行
      }
    }
  },
  {
    path: '/search',
    component: () => import('@/views/Search')
  },
  {
    name: 'searchresult',
    path: '/searchresult/:kw',
    component: () => import('@/views/Search/SearchResult')
  },
  {
    name: 'detail',
    path: '/detail',
    component: () => import('@/views/ArticleDetail')
  },
  {
    path: '/useredit',
    component: () => import('@/views/User/UserEdit')
  },
  {
    path: '/layout',
    component: () => import('@/views/Layout'),
    children: [
      {
        path: 'home',
        component: () => import('@/views/Home'),
        meta: {
          scrollT: 0 //  保存首页离开时, 滚动条位置
        }
      },
      {
        path: 'user',
        component: () => import('@/views/User')
      }
    ]

  }
]
const router = new VueRouter({
  routes
})
// 全局前置路由守卫
// router.beforeEach((to, from, next) => {
//   if (Cookies.get('Token') && to.path === '/login') { // 需求: 如果你已经登录了, 不要切换到登录页面
//     // 想要进登录页不留在原地了, 而是返回首页
//     next('/layout/home')
//     // next(false) 或者留在原地
//   } else {
//     next()
//   }
// })
export default router
